home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / c / xw2.000 / xw2 / xw / documentation / scratchfiles / XbW-grammar.txt < prev   
Encoding:
Text File  |  1994-12-05  |  2.7 KB  |  80 lines

  1.  
  2. I hope that you are used to bison grammars :)
  3.  
  4.  
  5. Grammar
  6. =======
  7.  
  8. Function calls:
  9. rule 7    statement -> funcresult ';'
  10. rule 8    statement -> STR '(' ')' ';'
  11. rule 24   funcresult -> STR '(' funcpar ')'
  12. rule 9    statement -> ':' funcpar ')' ';'      /* Call the last func again with */
  13.                                                 /* new parameters */
  14. "statements" that can be executed in XbW
  15. rule 5    statement -> NUMVAR ':' '=' numexp ';'
  16. rule 6    statement -> STRVAR ':' '=' strexp ';'
  17.  
  18. rule 10   statement -> '?' funcresult ';'
  19. rule 11   statement -> '?' numexp ';'
  20. rule 12   statement -> '?' strexp ';'
  21. rule 13   statement -> IF '(' numexp ')'
  22. rule 14   statement -> '@' STR '(' funcpar ')' ';'
  23. rule 15   statement -> '@' STR '(' ')' ';'
  24. rule 16   statement -> nptrexp ':' '=' nptrexp ';'
  25. rule 17   statement -> sptrexp ':' '=' strexp ';'
  26. rule 18   statement -> iptrexp ':' '=' numexp ';'
  27. rule 19   statement -> iptrexp '+' '=' numexp ';'
  28. rule 20   statement -> iptrexp '-' '=' numexp ';'
  29. rule 21   statement -> iptrexp '+' '=' numexp '[' numexp ']' ';'
  30. rule 22   statement -> iptrexp '-' '=' numexp '[' numexp ']' ';'
  31. rule 23   statement -> error ';'
  32.  
  33.  
  34. rule 25   funcpar -> funcpar strexp  
  35. rule 26   funcpar -> funcpar numexp
  36. rule 27   funcpar -> funcpar nptrexp
  37. rule 28   funcpar -> funcpar dptrexp
  38. rule 29   funcpar -> strexp
  39. rule 30   funcpar -> numexp
  40. rule 31   funcpar -> nptrexp
  41. rule 32   funcpar -> dptrexp
  42.  
  43. rule 33   nptrexp -> NPTR ':' strexp '.' strexp
  44. rule 34   nptrexp -> NULLPTR
  45. rule 35   sptrexp -> SPTR ':' strexp '.' strexp
  46. rule 36   iptrexp -> IPTR ':' strexp '.' strexp
  47. rule 37   dptrexp -> DPTR ':' strexp '.' strexp
  48.  
  49. rule 38   numexp -> NUM
  50. rule 39   numexp -> '(' NUMVAR ')'
  51. rule 40   numexp -> numexp '=' '=' numexp
  52. rule 41   numexp -> numexp '!' '=' numexp
  53. rule 42   numexp -> numexp '<' numexp
  54. rule 43   numexp -> numexp '>' numexp
  55. rule 44   numexp -> numexp '<' '=' numexp
  56. rule 45   numexp -> numexp '>' '=' numexp
  57. rule 46   numexp -> numexp '<' '>' numexp
  58. rule 47   numexp -> numexp '+' numexp
  59. rule 48   numexp -> numexp '-' numexp
  60. rule 49   numexp -> numexp '/' numexp
  61. rule 50   numexp -> numexp '*' numexp
  62. rule 51   numexp -> '-' numexp
  63. rule 52   numexp -> '(' numexp ')'
  64. rule 53   numexp -> '[' numexp ']'
  65. rule 54   numexp -> strexp '=' '=' strexp
  66. rule 55   numexp -> strexp '>' strexp
  67. rule 56   numexp -> strexp '<' strexp
  68. rule 57   numexp -> strexp '>' '=' strexp
  69. rule 58   numexp -> strexp '<' '=' strexp
  70. rule 59   numexp -> strexp '!' '=' strexp
  71. rule 60   numexp -> funcresult
  72. rule 61   numexp -> iptrexp   
  73.  
  74. rule 62   strexp -> STR
  75. rule 63   strexp -> sptrexp
  76. rule 64   strexp -> STRVAR 
  77. rule 65   strexp -> strexp ',' strexp
  78. rule 66   strexp -> '(' strexp ')'   
  79. rule 67   strexp -> '[' strexp ']'   
  80.